                RBBS-PC SYSOP ANSI.SYS COLOR HELP

              Adding Ansi Color to your WELCOMEG File

                         By: Greg Rismoen


   The ANSI.MRG for PC-TALK was written by Ken Nickerson and allows users
of PC-TALK to take advantage of IBM's ANSI color graphics and music when
calling RBBS-PC Bulletin Boards.  Ken Nickerson, using IBM equipment, and
his limited access system, was the first to make all the enhancements
available to the general public.  Kent Galbraith was the first SYSOP to
implement ANSI color on his RBBS system (data: 713-635-8254 or 713-360-1316)
24 hours, using IBM equipment.  Mike Freeman next implemented ANSI color
on RBBS-PC using a COMPAQ-driven system (24hr data: 713-481-0455).  My
system was the third IBM-driven RBBS system to implement ANSI color
(data 212-819-7942 hours 6pm - 8:30am weekdays 24hrs weekends).

   In order for a Caller to receive color and music from an RBBS, the
Caller needs to have the statement:  DEVICE=ANSI.SYS in the CONFIG.SYS
file (and reboot system), plus PC-TALK with ANSI.MRG applied (merged),
plus DOS 2.x operating system.

   The SYSOP needs to run RBBS-PC version CPC12.2A (or later), and have
the appropriate Escape codes in the WELCOMEG file.  Please read chapter
13 of the DOS 2.0 Manual for a very brief summary of escape codes.

   The Escape codes will allow you to issue special character sequences
to the Caller which will permit screen formatting, color graphics and
music to be executed for the Caller.

   The Escape Code is ASCII 027 and Hex 1B and cannot be issued within
EDLIN or DOS.  The normal procedure is to use a dummy variable to represent
the Esc code and then go into DEBUG and replace the dummy variable with
Hex 1B.  However, Volkswriter, Volkswriter Delux and PC-WRITE (freeware)
issue a true ESC code when the ESC key is depressed.  If you have access
to one of these word processing programs, you can set up your graphics
first, then go into the word processing program and insert the ESC codes
to enable color graphics and music.  However, appended to this help file
is a program known as SGR.TXT (or CLR.TXT) which contains true ESC codes
which can be copied over to your WELCOMEG file using the "T" Transfer function
of EDLIN (if last line in your file is 99, then issue:  100Tsysopclr.hlp
and you will append this file to the end of your WELCOMEG file).  Then
copy and delete as appropriate to move the ESC codes to where they are
needed.

BEGINNING OF YOUR FILE:

   All ANSI color/music/format statements have the format:

      [nn;nn;x  where nn is a valid number and x is an alpha operand.

      [0;1;37;44m  set attributes off (0);bold on (1);white f/g (37);
                     and blue background (44)

                  NOTE: If you are copying the ESC codes, rather than
                        inserting them, it is a good procedure to use
                        two digit numbers, like 00,01,05, because it will
                        be easier to later edit lines of code which
                        are copied and have a pair of ESC codes in the line,
                        such as, ESC[[00;17;01jESC[[00;01;05;32m


   At the beginning of your file you will want a format command to
start the text in the middle of the screen so the Caller will have
time to read it as it scrolls upward.

[0   [17;1;f  The first 0 turns off any attributes the caller has set
                  on his/her own system before calling your RBBS.  The
                  second statement starts text at line 17 column 1 and the
                  "f" operand is for format.

  Your second line should specify the color, with bold (highlight) on or
off and blinking (05) on or off:

[0;1;37;44;m   "1" turns bold on; "37" white foreground; "44" blue
                 background; "m" designates Set Graphics Rendition mode

   Now, if you do nothing else, the callers screen will start on the
17th line in the first column, and will stay bold white letters on a
blue background.  The text/graphics will scroll normally from the 17th
line and the color will not change until the caller signs off.

      [0;2j   inserted at the end of the first 23 lines of graphics
                on line 24, will return to white on black and erase the
                screen and place the curser on the home position.

      [0;32m  inserted on line 25 will turn green foreground and black
                (default) background on, until the next ESC code is read.
                 bold is now off and blinking is off (due to the 0; cmd)

      [0;1;32m  turns bold on and green f/g with (default) black b/g.

   You can insert ESC codes inside graphic frames to change the color
of the lettering inside the frame, leaving the frame a different color:

╔═══════════════════════════════════════════════════════════════════╗
║                                                                   ║
║[00;01;33m              This line is a different color[00;01;32m                       ║
║                                                                   ║
╚═══════════════════════════════════════════════════════════════════╝

   Please notice that the ESC codes are INSERTED and place the vertical
bars out of alignment, even though they will display correctly (try:
TYPE SYSOPCLR.HLP to see display if you have ANSI.SYS in your CONFIG.SYS).
For this reason, we recommend constructing your graphics first, and then
INSERT the ESC codes using PC-WRITE or Volkswriter, or, dummy the ESC codes
with a line editor like EDLIN and use DEBUG to replace the variable with
a true ESC (HEX 1B).

FORMATTING

   The ESC[[xx;yy;F command will format the screen where xx is column number
and yy is line number.  You can either start the screen at column x and
line y and then let it scroll normally, or you can continue to format the
screen, by subsequent ESC[[xx;yy;f commands telling the cursor where to
start printing the line of text which follows the format statement.
After the last format statement, the text will continue to scroll normally.
Just remember if you continue formatting you will have less control over
where the page breaks will fall, but trial and error will get you through.

     Once you are through formatting, and wish to check how the screen
breaks will occur for the Callers using PageLength=23, go into EDLIN
specifying WELCOMEG and at the system prompt hit L for List and it will
list the first 23 lines of text, which will be the initial screen your
Callers will see.  Insert or delete blank lines, as required, to get the
first screen to line up.  Then enter 24L to list the second 23 lines of
text, which will be the second screen the Callers will see, as so on.

MUSIC

   Music works just like the BASIC PLAY statement, except the Music
Background statement (MB) will not work in RBBS-PC.  The format is:

[MFOx.............................................

where M represents Music, F represents Foreground, O represents Octave
and x represents Octive number (0 - 6) for the music to follow.  If you
have ten lines of code for the song, each line must begin with ESC[[,
but only the first line requires the ESC[[MFOx code.  The ESC-N at the
end of the line will print a musical note graphic, and is not required.
  In place of ESC[[MF you can use ESC[[MS for staccato or ESC[[MST150
for Staccato Tempo 150 (tempo default is 120 quarter notes in a minute).
You might try creating your music with a music generator like BLUESBOX.BAS
and then append the resulting code to your WELCOMEG and copy it to the
correct line number and insert the required ESC[[ at the start of each
line of music code.


CLOSING YOUR FILE

You should close your WELCOMEG file with an ESC[[00 to turn off the colors,
highlighting and flashing or it will continue on the Callers screen
throughout the session, and may interfere with readability.

   If you wish to leave color on, remember some Callers will have monochrome
screens and some colors are almost unreadable on monochrome, which
defeats the purpose of having a Bulletin Board System.  We recommend
leaving yellow on black, green on black, or white on blue:


[00m[00;01;33;40m  Bold on; yellow foreground; black background
[00m[00;01;32;40m  Bold on; green foreground; black background
[00m[00;01;37;44m  Bold on; white foreground; blue background

OTHER USES FOR ANSI.CLR

   Remember, you can use the ANSI colors in batch files, menus and
whatever, and it is not limited to your RBBS system.  Give it a
try and color up your system.


DOS 2.0 SET GRAPHICS RENDITION (SGR) FILE

The following file has been appended to this help file and when it is
displayed (using ANSI.SYS) it will demonstrate in the right hand column
how the, say, 32 green foreground looks on 40 black background, on a
RGB color monitor.


[0=3h[0;1m                DOS 2.00 Set Graphics Rendition (SGR) Parameters
                               usage: ESC[#;,,,#m

<0> = All Attributes Off (Normal White on Black)  <1> = Bold On
<4> = Underscore On (IBM Monochrome Display Only) <5> = Blink On
<7> = Reverse Video On                            <8> = Cancelled On (Invisible)
[0mBOLD  [40mBackground=<40> Foreground=[30m<30> [31m<31> [32m<32> [33m<33> [34m<34> [35m<35> [36m<36> [37m<37>[0m
OFF   [41mBackground=<41> Foreground=[30m<30> [31m<31> [32m<32> [33m<33> [34m<34> [35m<35> [36m<36> [37m<37>[0m
      [42mBackground=<42> Foreground=[30m<30> [31m<31> [32m<32> [33m<33> [34m<34> [35m<35> [36m<36> [37m<37>[0m
      [43mBackground=<43> Foreground=[30m<30> [31m<31> [32m<32> [33m<33> [34m<34> [35m<35> [36m<36> [37m<37>[0m
      [44mBackground=<44> Foreground=[30m<30> [31m<31> [32m<32> [33m<33> [34m<34> [35m<35> [36m<36> [37m<37>[0m
      [45mBackground=<45> Foreground=[30m<30> [31m<31> [32m<32> [33m<33> [34m<34> [35m<35> [36m<36> [37m<37>[0m
      [46mBackground=<46> Foreground=[30m<30> [31m<31> [32m<32> [33m<33> [34m<34> [35m<35> [36m<36> [37m<37>[0m
      [47mBackground=<47> Foreground=[30m<30> [31m<31> [32m<32> [33m<33> [34m<34> [35m<35> [36m<36> [37m<37>[0m
[0;1mBOLD  [40mBackground=<40> Foreground=[30m<30> [31m<31> [32m<32> [33m<33> [34m<34> [35m<35> [36m<36> [37m<37>[0;1m
ON    [41mBackground=<41> Foreground=[30m<30> [31m<31> [32m<32> [33m<33> [34m<34> [35m<35> [36m<36> [37m<37>[0;1m
      [42mBackground=<42> Foreground=[30m<30> [31m<31> [32m<32> [33m<33> [34m<34> [35m<35> [36m<36> [37m<37>[0;1m
      [43mBackground=<43> Foreground=[30m<30> [31m<31> [32m<32> [33m<33> [34m<34> [35m<35> [36m<36> [37m<37>[0;1m
      [44mBackground=<44> Foreground=[30m<30> [31m<31> [32m<32> [33m<33> [34m<34> [35m<35> [36m<36> [37m<37>[0;1m
      [45mBackground=<45> Foreground=[30m<30> [31m<31> [32m<32> [33m<33> [34m<34> [35m<35> [36m<36> [37m<37>[0;1m
      [46mBackground=<46> Foreground=[30m<30> [31m<31> [32m<32> [33m<33> [34m<34> [35m<35> [36m<36> [37m<37>[0;1m
      [47mBackground=<47> Foreground=[30m<30> [31m<31> [32m<32> [33m<33> [34m<34> [35m<35> [36m<36> [37m<37>[0;1m
